Automated data storage library with wireless robotic positioning system

ABSTRACT

A method and apparatus in an automated data storage library for identifying a location of a robot in the automated data storage library. Signals are transmitted from a set of transmitters in the automated data storage library, wherein a location of the set of transmitters is known. The signals transmitted from the set of transmitters are received at a receiver located on the robot to form a set of received signals. The location of the robot is determined using the set of received signals and the location of the set of transmitters.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates generally to electronic media storage andretrieval and in particular to an improved method and apparatus forlocating and tracking robotic units in a storage system.

2. Description of Related Art

Automated data storage library systems provide a means for largequantities of information to be efficiently stored and retrieved byexternal systems. These systems generally include one or more roboticunits that move data storage media to and from read/write devices wherethe information can be accessed. In order to control these movements,the precise location of the robotic mechanisms within the libraryrelative to the data storage media and the read/write devices must beknown. An example of such a system is a tape library. In this case, tapecartridges are stored in specific locations within a structure, and arobotic unit moves about the structure, transferring cartridges to andfrom tape drives where the information can be accessed by an externalhost.

Such systems often rely on optical encoders mounted on the robot drivemotors to provide the library control unit with position information viaan electrical cable. In this case, the robot's position is knownrelative to a fixed position, typically a mechanical stop that the robotis driven to during an initialization cycle. The position of the robotis then known based on the number of encoder tach counts from the fixedinitialization position. Although this method of positioning the robothas been proven to be sufficient and reliable, it does have its issues.If the control system fails or loses control of the robotics for anyreason, the position of the robot will become unknown. This means thatthe robot must be driven to the fixed initialization position and thenthe entire library must be audited. Also, optical encoders necessary forthis type of positioning scheme add cost to the library. Each motor thatdrives the robot must have an encoder. Several motors can be necessarydepending on the complexity of the library and robot geometry. Finally,mechanical tolerances inherent in this system contribute to positionerrors.

Therefore, it would be advantageous to have an improved method andapparatus for identifying the position of robots in an automated datastorage library.

SUMMARY OF THE INVENTION

The present invention provides a method and apparatus in an automateddata storage library for identifying a location of a robot in theautomated data storage library. Signals are transmitted from a set oftransmitters in the automated data storage library, wherein a locationof the set of transmitters is known. The signals transmitted from theset of transmitters are received at a receiver located on the robot toform a set of received signals. The location of the robot is determinedusing the set of received signals and the location of the set oftransmitters.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is an illustration of an automated cartridge system (ACS) inwhich a preferred embodiment of the present invention may beimplemented.

FIG. 2 is a block diagram of a library storage module (LSM) depicted inaccordance with a preferred embodiment of the present invention;

FIG. 3 is a diagram illustrating a positioning mechanism for identifyingthe position of a robot within a library storage module depicted inaccordance with a preferred embodiment of the present invention;

FIG. 4 is a block diagram depicting a data processing system that may beimplemented in a library control unit (LCU) depicted in accordance witha preferred embodiment of the present invention; and

FIG. 5 is a high level flowchart of a process for identifying theposition of a robot in a LMU depicted in accordance with a preferredembodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures, and in particular with reference nowto FIG. 1, an automated cartridge system (ACS) is illustrated in which apreferred embodiment of the present invention may be implemented. Inthis example, ACS 100 includes a host computer 102, a library storagemodule (LSM) 104, LSM 106 and library module unit (LMU) 108. LMU 108interprets commands from host computer 102 to relay the appropriateinstructions to the appropriate LSM, such as LSM 104 or LSM 106. Theseinstructions are relayed to a library control unit (LCU) (not shown)within LSM 104 or LSM 106. Lines 109, 110, and 112 illustrate controllines to manage LMSs 104 and 106. Thus, 114 illustrates a data pathbetween host 102, LSM 104, and LSM 106.

The illustration of FIG. 1 is not intended to imply architecturallimitations to the storage system in which the mechanism of the presentinvention may be implemented. LMU 108 is used to provide an interfacebetween one or more LSMs and host 102. For example, although thedepicted example illustrates two LSMs, other numbers of LSMs may be usedwith LMU 108, providing the interface between host 102 and the LSMs. LMU108 acts as a controller and interprets commands from host computer 102.These commands are relayed as appropriate instructions to LSM 104 andLSM 106. Bus 114, on the other hand, provides a read/write data pathdirectly from host 102 to LSM 104 and LSM 106. LSM 104 and LSM 106provide the appropriate mechanisms for automated cartridge handling.These LSMs provide a storage area for magnetic tape cartridges, but alsoinclude an optical system for identifying the correct cartridge, acontrolled electromechanical means for selecting the appropriatecartridge and delivering the cartridge to the appropriate tape drive.

With reference now to FIG. 2, a block diagram of a library storagemodule (LSM) is depicted in accordance with a preferred embodiment ofthe present invention. In this example, LSM 200 contains data storagemedia 202-240 within library structure 242. In the depicted example, thedata storage media takes the form of tape cartridges. Of course, othertypes of data storage media may be used, such as diskettes or digitalversatile disks. LSM 200 also includes media read/write devices 244 and246, which are configured to receive the data storage media for readingand writing to the media. Media read/write devices 244 and 246 providedata to a computer, such as host 102 in FIG. 1. The data storage mediaare manipulated using a robot 248, which includes a manipulatingmechanism, such as a hand to grasp the data storage media and places thedata storage media into media read/write devices 244 and 246. Further,robot 248 also will return data storage media to the appropriatelocations after reading or writing of the media in media read/writedevices 244 and 246. Library control unit (LCU) 252 receivesinstructions from a host computer to identify media that is to be readfrom or written to. In the depicted example, library control unit 252receives instructions from a LMU, such as LMU 108 in FIG. 1. Alsolocated within LSM 200 are transmitters 254, 256, and 258. Thesetransmitters, in conjunction with a robot receiver unit 260, are used toidentify the position of robots 248 within LSM 200. Robot 248 may takevarious forms, such as a vehicle having a chassis with four wheels inwhich the rear wheels are driven by a motor. Steering would beaccomplished through an actuator controlled by LCU 252. Communicationbetween robot 248 and LCU 252, in such a configuration, could beaccomplished using transmitter receiver 262. Of course, receiver 260 andtransmitter receiver unit 262 may be combined into a single unitdepending on the implementation. Further, robot 248 may take otherforms, such as, for example, a robot transfer system as illustrated inU.S. Pat. No. 5,456,569 in which a robotic transfer system isillustrated having two hands mounted on a separate vertical axis atopposite ends of a balanced rotating horizontal axis.

The present invention provides a method, apparatus, and instructions foruse in an automatic data storage library with one or more robotspositioned by radio signals. One or more transmitters mounted at knownpositions within a library structure communicate signals to a receivermounted on the media transfer robot. Radio signals are the preferredmethod of communication due to the speed and accuracy with which theycan be transmitted, received, and processed. The distance between thetransmitters in the automated data storage library, and the receiver ortransponder on the robot is calculated by a microprocessor on the robotand transmitted to the library control system. Alternatively, thedistance between the transmitters and the receiver or transponder on therobot may be calculated by a computer in the library control unit usedto control the robot.

In these examples, a computer within the library control unit applies amathematical algorithm to determine the position of the robot within thelibrary geometry. Controlled movements of the robot are then executedbased on the position data. The number of transmitters necessary willvary depending on the complexity of the library geometry. In general,the number of transmitters required will equal the number of dimensionsrequired to position the robot, however, this depends entirely on thegeometry and layout of the library and its components. Transmitters, inaddition to what is required, can be used to correct for position errorsand to verify accuracy. Further, a fixed position within the library maybe used as a calibration position to reduce or eliminate position errorsassociated with mechanical tolerances.

With reference now to FIG. 3, a diagram illustrating a positioningmechanism for identifying the position of a robot within a librarystorage module is depicted in accordance with the preferred embodimentof the present invention. In this example, transmitter 256 has a knownlocation identified by XY coordinates (Xc1, Yc1). Transmitter 254 has aknown location identified by XY coordinates (Xc2, Yc2). Similarly,transmitter 258 also has a know location within LSM 200 identified by XYcoordinates (Xc3, Yc3). Transmitters 254, 256, and 258 will transmitradio frequency (RF) signals, which are received by robot receiver 260.Robot receiver 260 in this example is a transponder. This transponderincludes a receiver and a transmitter. The transponder sends a signal inresponse to receiving a transmission from one of the transmitters.Transmitters 254, 256, and 258 will receive the response from thetransponder and are able to calculate a distance from the transponder toeach individual receiver based on this response. The different signalsfrom the different transmitters may be differentiated based on variousparameters, such as, for example, frequency or pulse width.

In this example, robot receiver 260 has a distance of R2 fromtransmitter 254, a distance of R1 from transmitter 256, and a distanceof R3 from transmitter 258. The distance between one of the transmittersand receiver 260 on robot 248 locates the robot on a theoretical circlewhose center is the known location of the transmitting device with aradius that is the determined distance between the transmitter and thereceiver on the robot. In this example, circles 300, 302, and 304 areillustrated for transmitters 256, 254, and 258 respectively. Theintersection of these circles, circles 300, 302, and 304 identifies theposition of robot 248. The position of robot 248 in XY coordinates isprovided through the solution of the following equations:

(X-Xc1)²+(Y-Yc1)²=R1 ²

(X-Xc2)²+(Y-Yc2)²=R2 ²

(X-Xc3)²+(Y-Yc3)²=R3 ²

Where { Xc1, Yc1, Xc2, Yc2, Xc3, Yc3} are known locations within thelibrary structure. As mentioned, it is possible to create this exactpositioning system using only two transmitters. In a library where therobot(s) must be located in three dimensions, the position solution isthe intersection of at least three “spheres”. In this case, the positionof the robot (X,Y,Z) is the solution to the following equations:

(X-Xc1)²+(Y-Yc1)²(Z-Zc1)²=R1 ²

(X-Xc2)²+(Y-Yc2)²(Z-Zc2)²=R2 ²

(X-Xc3)²+(Y-Yc3)²(Z-Zc3)²=R3 ²

Referring to FIG. 4, a block diagram depicting a data processing systemthat may be implemented in a library control unit (LCU) in accordancewith a preferred embodiment of the present invention. Data processingsystem 400 in FIG. 4 may be implemented in LCU 252 in FIG. 2.

Data processing system 400 may be, for example, a symmetricmultiprocessor (SMP) system including a plurality of processors 402 and404 connected to system bus 406. Alternatively, a single processorsystem may be employed. Also connected to system bus 406 is memorycontroller/cache 408, which provides an interface to local memory 409.I/O bus bridge 410 is connected to system bus 406 and provides aninterface to I/O bus 412. Memory controller/cache 408 and I/O bus bridge410 may be integrated as depicted.

Peripheral component interconnect (PCI) bus bridge 414 connected to I/Obus 412 provides an interface to PCI local bus 416. Typical PCI busimplementations will support four PCI expansion slots or add-inconnectors. Communications links to LMU 108 may be provided throughnetwork adapter 418. Transmitter interface 420 provides a connection totransmitters, such as transmitters 254, 256, and 258 in FIGS. 2 and 3.Through transmitter interface 420 data processing system 400 receivesdata from the transmitters. This data may take various forms, forexample, distance data or raw transmission/reception times used tocalculate distance from the transmitters to the robot receiver.

Additional PCI bus bridges 422 and 424 provide interfaces for additionalPCI buses 426 and 428, from which additional interfaces or networkadapters may be supported. In this manner, data processing system 400allows connections to transmitters, such as transmitters 254, 256, and258. A memory-mapped graphics adapter 430 and hard disk 432 may also beconnected to I/O bus 412 as depicted, either directly or indirectly.

Those of ordinary skill in the art will appreciate that the hardwaredepicted in FIG. 4 may vary. For example, other peripheral devices, suchas optical disk drives and the like, also may be used in addition to orin place of the hardware depicted. The depicted example is not meant toimply architectural limitations with respect to the present invention.

Preferably, data processing system 400 will include the coordinates ofthe transmitters to identify the location of the transmitters within theLMU. In addition, the periphery of the monitored area also may beincluded. A program or other code is contained within data processingsystem 400 to identify the position of robot 248 in FIG. 3 within LMU200 based on data received from transmitters 254, 256, and 258.

With reference now to FIG. 5, a high level flowchart of a process foridentifying the position of a robot in a LMU is depicted in accordancewith the preferred embodiment of the present invention. The processbegins by causing the transmitters to transmit signals to thetransponder or receiver located on the robot (step 500). Thereafter, theresponse signal data from the transmitters are received (step 502). Thedata received is that used to identify the distance between thetransmitters and the transponder. This data includes, for example,timing information as to when the signal was sent to the transponderfrom the transmitter, as well as timing information as to when aresponse was received from the transponder. Distances to the transponderfrom the transmitters are calculated (step 504). The position of thetransponder is then calculated (step 506) with the process terminatingthereafter. The location of the robot may be identified using theequations and methods described above.

Such a mechanism alleviates the need for current cell and drivetargeting systems and provides the control system with the position ofthe robot immediately when the library is powered into an “on” state.Additionally, if the position calculation and feedback processes can becompleted quickly enough, the need for encoders located on robot drivemotors may be eliminated.

Thus, the present invention provides an improved method, apparatus, andinstructions for use in identifying the location of a robot in aautomated data storage library. This advantage is provided through theuse of placing transmitters in known locations within the library. Areceiver/transmitter device, such as a transponder is placed on therobot. Through the data obtained using these transmitters, the positionof the robot may be identified and the movements of the robot may becontrolled accordingly. In these examples, the communication between therobot and the LCU take the form of a wireless communications link.

The description of the present invention has been presented for purposesof illustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Forexample, although the depicted examples employ the use of a set of threetransmitters and a transponder, located on the robot, other numbers oftransmitters may be used depending on the type of positioninginformation desired. Two transmitters may be used when only a twodimensional positioning of the robot is required. Four transmitters maybe used to obtain a more optimal level of information for positioncalculations.

Further, the mechanism of the present invention may be used to trackmore than one robot within a library. In addition, the mechanism may beused to track other objects within the library, such as, for example, atape or disk. Other wireless signals other than RF may be used toimplement the positioning mechanism of the present invention. Forexample, ultrasonic signals may be used in place of the RF signals.Additionally, the transmitters and the receiver may be reversed. Forexample, a transmitter may be placed on the robot with a set ofreceivers being placed in the library to receive the transmission fromthe robot. The distances from the receivers to the transmitters can thenbe determined with a determination of the location of the robot beingbased on these distances. The embodiment was chosen and described inorder to best explain the principles of the invention the practicalapplication and to enable others of ordinary skill in the art tounderstand the invention for various embodiments with variousmodifications as are suited to the particular use contemplated.

What is claimed is:
 1. A method in an automated data storage library foridentifying a location of a robot in the automated data storage library,the method comprising: transmitting signals from a set of transmittersin the automated data storage library, wherein a location of the set oftransmitters is known; receiving the signals transmitted from the set oftransmitters at a receiver located on the robot to form a set ofreceived signals; and determining the location of the robot using theset of received signals and the location of the set of transmitters. 2.The method of claim 1, wherein the transmitting step comprises:transmitting the signals from the set of transmitters at knownintervals.
 3. The method of claim 2, wherein the determining stepcomprises: determining intervals at which the signals are received toform a set of received intervals; identifying a distance between eachtransmitter within the set of transmitters and the receiver to form aset of distances; and determining the location of the robot using theset of distances and the locations of the set of transmitters.
 4. Themethod of claim 2, wherein the receiver is part of a transponderincluding a transmitter and wherein the step of determining comprises:responsive to the signals, returning responses from the transponder tothe transmitters; determining a distance from each of the set oftransmitters to the transponder based on the responses to form a set ofdistances; and determining the location of the robot using the set ofdistances and the locations of the set of transmitters.
 5. The method ofclaim 1, wherein the determining step is performed by a library controlunit located within the automated data storage library.
 6. The method ofclaim 1 further comprising: controlling movement of the robot using thelocation of the robot within the automated data storage library.
 7. Themethod of claim 1, wherein the receiver is located on a hand on therobot, wherein the location of the robot in the automated data storagelibrary is the location of the hand in the automated data storagelibrary.
 8. The method of claim 1, wherein the automated data storagelibrary is a library storage module.
 9. The method of claim 1, whereinthe automated data storage library holds tape cartridges.
 10. The methodof claim 1, wherein the automated data storage library holds magneticmedia.
 11. The method of claim 1, wherein the automated data storagelibrary holds digital versatile discs.
 12. The method of claim 1,wherein the set of transmitters comprises three transmitters.
 13. Amethod in an automated data storage library for identifying a locationof a robot in the automated data storage library, the method comprising:transmitting signals from a transmitter located on the robot, receivingthe signals at a set of receivers to form a set of received signals,wherein a location of the set of receivers is known; and determining thelocation of the robot using the set of received signals and the locationof the set of receivers.
 14. An automated data storage library systemcomprising: a storage structure for receiving a plurality of datastorage units; a set of transmitters having known locations, wherein thetransmitters transmit signals; a robot, wherein the robot manipulatesdata storage units within the automated data storage library; a receiverlocated on the robot, wherein the receiver receives the signals to forma set of received signals; and a control system, wherein the controlsystem determines a distance between the robot and each of thetransmitters using the set of received signals to form a set ofdistances and determines a location of the robot within the automateddata storage library using the location of the set of transmitters andthe set of distances.
 15. The automated data storage library of claim14, wherein the set of transmitters transmit the signals at known timeintervals.
 16. The automated data storage library of claim 15, whereinthe control system determines the location of the robot within theautomated data storage library using the location of the set oftransmitters and the set of distances by determining time intervals atwhich the signals are received to form a set of received intervals,identifying a distance between each transmitter within the set oftransmitters and the receiver to form a set of distances using the setof received time intervals and the known time intervals, and determiningthe location of the robot using the set of distances and the locationsof the set of transmitters.
 17. The automated data storage library ofclaim 14, wherein the control system controls the transmission of thesignals.
 18. The automated data storage library of claim 14, wherein thecontrol system controls the robot using the location of the robot. 19.The automated data storage library of claim 14, wherein the controlsystem is a computer.
 20. The automated data storage library of claim14, wherein the automated data storage library holds tape cartridges.21. The automated data storage library of claim 14, wherein theautomated data storage library holds magnetic media.
 22. The automateddata storage library of claim 14, wherein the automated data storagelibrary hold digital versatile discs.
 23. An automated data storagelibrary system comprising: a storage structure for receiving a pluralityof data storage units; a robot, wherein the robot manipulates datastorage units within the automated data storage library; a transmitterlocated on the robot, wherein the transmitter transmits signals; a setof receivers having known locations, wherein the set of receivers has aknown location and received the signals to form a set of receivedsignals; and a control system, wherein the control system determines adistance between the robot and each of the transmitters using the set ofreceived signals to form a set of distances and determines a location ofthe robot within the automated data storage library using the locationof the set of transmitters and the set of distances.
 24. An apparatus inan automated data storage library for identifying a location of a robotin the automated data storage library, the apparatus comprising:transmitting means for transmitting signals from a set of transmittersin the automated data storage library, wherein a location of the set oftransmitters is known; receiving means for receiving the signalstransmitted from the set of transmitters at a receiver located on therobot to form a set of received signals; and determining means fordetermining the location of the robot using the set of received signalsand the location of the set of transmitters.
 25. The apparatus of claim24, wherein the transmitting means comprises: transmitting means fortransmitting the signals from the set of transmitters at knownintervals.
 26. The apparatus of claim 25, wherein the determining meanscomprises: first determining means for determining intervals at whichthe signals are received to form a set of received intervals;identifying means for identifying a distance between each transmitterwithin the set of transmitters and the receiver to form a set ofdistances; and second determining means for determining the location ofthe robot using the set of distances and the locations of the set oftransmitters.
 27. The apparatus of claim 25, wherein the receiver ispart of a transponder including a transmitter and wherein thedetermining means comprises: returning means, responsive to the signals,for returning responses from the transponder to the transmitters; firstdetermining means for determining a distance from each of the set oftransmitters to the transponder based on the responses to form a set ofdistances; and second determining means for determining the location ofthe robot using the set of distances and the locations of the set oftransmitters.
 28. The apparatus of claim 24, wherein the determiningmeans is performed by a library control unit located within theautomated data storage library.
 29. The apparatus of claim 24 furthercomprising: controlling means for controlling movement of the robotusing the location of the robot within the automated data storagelibrary.
 30. The apparatus of claim 24, wherein the receiver is locatedon a hand on the robot, wherein the location of the robot in theautomated data storage library is the location of the hand in theautomated data storage library.
 31. The apparatus of claim 24, whereinthe automated data storage library is a library storage module.
 32. Theapparatus of claim 24, wherein the automated data storage library holdstape cartridges.
 33. The apparatus of claim 24, wherein the automateddata storage library holds magnetic media.
 34. The apparatus of claim24, wherein the automated data storage library holds digital versatilediscs.
 35. The apparatus of claim 24, wherein the set of transmitterscomprises three transmitters.
 36. An apparatus in an automated datastorage library for identifying a location of a robot in the automateddata storage library, the apparatus comprising: transmission means fortransmitting signals from a transmitter located on the robot, receptionmeans for receiving the signals at a set of receivers to form a set ofreceived signals, wherein a location of the set of receivers is known;and determining means for determining the location of the robot usingthe set of received signals and the location of the set of receivers.37. A computer program product in a computer readable medium foridentifying a location of a robot in an automated data storage library,the computer program product comprising: first instructions fortransmitting signals from a set of transmitters in the automated datastorage library, wherein a location of the set of transmitters is known;second instructions for receiving the signals transmitted from the setof transmitters at a receiver located on the robot to form a set ofreceived signals; and third instructions for determining the location ofthe robot using the set of received signals and the location of the setof transmitters.